This invention relates generally to application design and coding, and more particularly to an interface markup language and a method for making application code.
It is difficult to bridge the gap between the highly abstract design of an application and the details of coding. A distributed application, such as a Web-based application, can often be described functionally as a set of user interface screens that invoke server actions: for example, in a WAP application a WAP login screen that accepts a user name and password and then invokes a login on the server. Such an application can easily be represented as a state diagram: for example, as a graph consisting of user interface screens linked together by lines representing possible control flows from screen to screen, such as, for example, the login screen linked to an initial menu screen, etc. Such diagrams make it easy to represent the functional flow of the application and refine the user interface design. Such applications are traditionally written entirely by hand or using visual development tools to design screens.
A screen designer, however, only solves the problem of screen layout, not application flow. Interface description languages (IDL) have been used to provide abstract specifications of remote operations (such as remote procedure calls). Such operations, however, cannot be used directly to construct an abstract state diagram of the application. It is very difficult to manually generate application code directly from such a diagram. Each action invokes a server operation which in turn both invokes server side application logic (for example, the login operation) and must generate the next user interface screen (for example, the initial menu screen). As such, there continues to be a need for a solution to the aforementioned difficulties in application design and coding.
The invention provides an Interface Markup Language (xe2x80x9cIMLxe2x80x9d) and a method of making application code. In accordance with a specific embodiment of the invention, application code is made from an IML file. The IML file specifies abstract server interface definitions called xe2x80x9coperationsxe2x80x9d that return abstract content descriptions called xe2x80x9centitiesxe2x80x9d. Each entity specifies a set of operations that the entity can invoke. The combined set of entities and operations together define an abstract flow diagram of an application.
In accordance with another specific embodiment of the invention, a computer readable medium has instructions stored thereon which, when executed by a processor, cause the processor to perform a sequence of steps in order to make application code that is based on a flow diagram of an application. The steps include making a file that includes an operation list section delimited by an operation list marker and an entity list section delimited by an entity list marker. The operation list section specifies a series of operations supported by an application server. The entity list section describes a set of entities which constitute an interface to an application running on the application server. The steps further include compiling the file to make application code.
Other aspects and advantages of the invention will become apparent from the following detailed description and accompanying drawings, illustrating by way of example the features of the invention.